import request from '@/utils/request';
import {AxiosPromise} from 'axios';

/**
 * 查询生产计划排程列表
 * @param query
 * @returns {*}
 */

export const listScheduleLine = (query?: ScheduleLineVO): AxiosPromise<ScheduleLineVO[]> => {
  return request({
    url: '/wms/scheduleLine/list',
    method: 'get',
    params: query
  });
};

/**
 * 查询生产计划排程详细
 * @param lineId
 */
export const getScheduleLine = (lineId: number): AxiosPromise<ScheduleLineVO> => {
  return request({
    url: '/wms/scheduleLine/' + lineId,
    method: 'get'
  });
};

/**
 * 新增生产计划排程
 * @param data
 */
export const addScheduleLine = (data: ScheduleLineVO) => {
  return request({
    url: '/wms/scheduleLine',
    method: 'post',
    data: data
  });
};

/**
 * 修改生产计划排程
 * @param data
 */
export const updateScheduleLine = (data: ScheduleLineVO) => {
  return request({
    url: '/wms/scheduleLine',
    method: 'put',
    data: data
  });
};

/**
 * 删除生产计划排程
 * @param lineId
 */
export const delScheduleLine = (lineId: number | (number | undefined)[]) => {
  return request({
    url: '/wms/scheduleLine/' + lineId,
    method: 'delete'
  });
};

export interface ScheduleLineVO extends BaseEntity, PageQuery {
  /** 计划id */
  id?: number;

  /** 主键 */
  lineId?: number;

  /** 生产线id */
  workshopId?: number;

  /** bomId */
  bomId?: number;

  /** 批次号 */
  batchCode?: string;

  /** 产品id */
  productId?: number;

  /** 开始生产 */
  startTime?: string;

  /** 结束时间 */
  endTime?: string;

  /** 状态 */
  status?: string;

  /** 需求数量 */
  quantity?: number;

  /** 备注 */
  remark?: string;

  /** 产品名称 */
  productName?: string;

  /** 未完成数量 */
  quantityUnFinished?: number;

  /** 已排程量 */
  quantityInTask?: number;

  /** 清单名称 */
  bomName?: string;

  /** 耗时 */
  costTime?: number,

  /** 生产线名称 */
  lineName?: string,

  /** 排程名称 */
  scheduleName?: string,

  /** 总量 */
  totalQuantity?: number,

  /** 完成量 */
  totalQuantityFinished?: number,

}
